未分类
7.1k 词
微调(Finetuning) vs. 提示(Prompting):大型语言模型的两种方法探讨了使用大型语言模型(LLM)的两种主要历史期望和由此产生的技术方法:微调(Finetuning) 和 提示(Prompting)。这两种方法会导致大型语言模型的结果和应用截然不同。 对大型语言模型的两种期望人类历史上对大型语言模型有两种不同的期望: 成为专家(微调):第一个期望是让大型语言模型成为解决特定类型问题的专家,尤其是在自然语言处理(NLP)任务中。 范例:调整大型语言模型以专门从事翻译(例如,中文到英文)或摘要(缩短文章)。 比喻:这就像训练一头大象(大型语言模型)以高精度执行单一、特定的任务。 成为通才(提示):第二个期望是让大型语言模型成为一个多才多艺的“万事通”,能够做任何事情。 范例:给大型语言模型一个句子,然后提供一个人类可读的指令(“提示”),告诉它要翻译还是摘要该句子。 比喻:这就像一头知道很多事情的大象(大型语言模型),但需要一只小老鼠(人类用户)用简单的指令来指导它该做什么。ChatGPT就是这种方法的典型例子。 通才思想的历史背景将大型...
2.7k 词
为什么有些软件会用多种编程语言开发?你是否曾好奇,为什么一个软件项目有时会“混搭”使用多种编程语言?这背后其实蕴含着现代软件工程中关于性能、协作与代码复用的深刻智慧。本文将带你深入了解这背后的技术原理。 前端与后端:天然的“多语言”环境对于我们熟悉的网站和应用,例如使用Django这类全栈框架构建的项目,其本身就是多语言协作的典型。后端逻辑可能由Python处理,而用户直接交互的前端界面则由HTML、CSS和JavaScript构建。这两部分作为独立的进程,通过网络请求等方式进行通信,各自安好。 然而,当我们需要将不同语言编写的代码编译成一个单一、高效的可执行文件时,事情就变得复杂起来。这正是本次探讨的核心。 从源代码到可执行文件:编译的艺术要理解多语言如何“融合”,我们首先需要了解代码是如何从人类可读的文本,转变为机器可以执行的指令的。以经典的C语言为例,我们熟知的GCC编译器实际上经历了一个四步流程: 预处理 (Preprocessing): 处理宏定义、头文件等。 编译 (Compilation): 将预处理后的代码转换成汇编语言。这是一个关键的中间步骤,并非直接生成机...
1.7k 词
普遍规律分析炒股的朋友大概率都经历过这种场景:行情火得不行,身边人都在聊某只股票,抖音、朋友圈、财经博主全在喊多。你一咬牙进去了,结果刚买完,股价就掉头往下。最后只能尴尬地安慰自己一句:是不是我买的姿势不对? “当菜市场大妈都在讨论股票的时候,那这波行情就要见顶了”,这句话不是没有道理。 其实,这不是个例,而是普遍规律。为什么普通人总是买在顶点?今天想跟大家聊聊这个自我实现的陷阱。 先看点数据,2000 年科网股泡沫最疯狂的时候,美国散户开户量创历史新高,结果没过几个月,纳指腰斩。 2021 年美股、加密货币大火,Robinhood 下载量在一季度冲到顶峰,Coinbase 新用户数飙升。结果呢?比特币从 6 万跌到 3 万,美股科技股一顿暴杀。 再看现在:谷歌搜AI 股票,Nvidia的热度在 2025 年 6 月达到顶点,刚好对应 AI 概念股的一波短线见顶。 这背后,其实就是群体心理:越是价格涨到离谱的时候,越是吸引新玩家蜂拥而入。为什么?因为人性。 三大陷阱1. 从众效应:别人赚钱=我也要上车人在投资里最典型的心理,就是怕错过。当你发现身边朋友靠 Nvidia 或比特币赚...
8.5k 词
Python与Pytorch1. enumerate作用:在 遍历一个序列 时,额外提供 元素的索引。 语法: 12for i, x in enumerate(sequence, start=0): ... i 是索引(默认从 0 开始,可以用 start 改起始值); x 是序列里的元素。 例子: 123chars = ['a', 'b', 'c']for i, ch in enumerate(chars): print(i, ch) 输出: 1230 a1 b2 c 用途:常用于 建立索引表(比如你代码里的 stoi),或者当你需要同时知道 位置 和 值 时。 2. zip作用:把 多个可迭代对象(list/tuple/string等)里的元素 一一配对,返回元组。 语法: 12for x, y in zip(seq1, seq2): ... 第一个序列的第 k 个元素和第二个序列的第 k 个元素配成一对 (x, y)。 会在最短的序列结束时停下。 例子: 1234a = [1, 2, 3]b = ['x', 'y', 'z']fo...
9.2k 词
问题1:机器学习的基本分类有哪些?监督学习、无监督学习、半监督学习与强化学习有何区别。机器学习的基本分类主要有 监督学习、无监督学习、半监督学习和强化学习。它们的区别可以从 是否有标注数据、学习目标、训练方式 三个角度理解: 1. 监督学习(Supervised Learning)- **数据特点**:训练数据包含输入 $X$ 和对应的**输出标签 $Y$**。 - **目标**:学习一个映射函数 $f:X→Y$,使得预测值尽可能接近真实标签。 - **典型任务**:分类(如垃圾邮件识别)、回归(如房价预测)。 - **核心思想**:通过大量“输入-输出”示例来学习规律。 2. 无监督学习(Unsupervised Learning)- **数据特点**:只有输入数据 $X$,没有标签 $Y$。 - **目标**:发现数据内部的结构或模式。 - **典型任务**:聚类(如用户分群)、降维(如主成分分析 PCA)。 - **核心思想**:通过**数据自身的相似性或分布规律来理解结构**,而不依赖标签。 ...
7.7k 词
通过从零构建一个名为micrograd的微型自动求导引擎,来深入、直观地理解神经网络的训练核心——反向传播算法。 第一阶段:核心概念与导数直观理解 Micrograd 简介: 它是一个自动梯度(Autograd)引擎,其核心功能是实现反向传播(Backpropagation)。 反向传播是高效计算损失函数相对于神经网络所有权重和偏置的梯度(Derivatives)的算法。梯度指明了调整参数以减小损失的方向。 这是 PyTorch、JAX 等现代深度学习框架的数学核心。 核心演示: Value对象:micrograd中的基本数据单元,可以构建数学表达式图。 前向传播 (Forward Pass):从输入开始,通过计算图计算出最终的输出值。 反向传播 (Backward Pass):在最终输出上调用.backward(),micrograd会自动、递归地应用链式法则(Chain Rule),计算出最终输出对每一个输入和中间变量的梯度。 12345678910111213141516171819202122232425262728293031323334353...
AI
1.7k 词
超越提示词:深入理解AI应用的核心——上下文工程当我们与AI大语言模型(LLM)互动时,常常会遇到一个瓶颈:为什么有时AI Agent在处理复杂任务时显得力不从心?答案可能并非模型本身的能力不足,而在于一个常被忽视的关键环节——**上下文工程(Context Engineering)**的失败。这篇笔记将带您深入探讨这一核心概念,理解它如何成为驱动AI Agent高效工作的“内存管理器”。 什么是“上下文”?它远不止聊天记录首先,我们需要重新定义“上下文”。它并非简单指代我们与AI的对话历史,而是指提供给模型用于推理和生成下一步任务的“全部信息集合”。一个设计良好的上下文,通常包含三大核心类别: 指导性上下文 (Guidance Context):这是我们最熟悉的领域,主要通过提示词工程(Prompt Engineering)来实现。它负责告诉模型“做什么”和“怎么做”,为任务设定框架、目标和规则,例如系统提示、任务描述和输出格式定义。 信息性上下文 (Informative Context):这部分内容旨在告诉模型“需要知道什么”,为它提供解决问题所需的关键事实与数据。它涵...
2.5k 词
解锁期权的力量:量化分析师的战略交易指南**第一部分:期权的基础了股票期权的概念,认为它是构建与量化预测相符的收益的强大工具。概述了四种基本的期权头寸: 买入看涨期权:赋予在设***格购买股票的权利,无需预先购买即可从股价上涨中获利。 买入看跌期权:赋予在设***格出售股票的权利,适用于预期股价下跌或作为防范下跌的保险。 卖出看涨期权:出售购买股票的权利,收取权利金,但如果股价上涨,则有义务出售股票。 卖出看跌期权:出售出售股票的权利,收取权利金,如果股价下跌,则有义务购买股票。 随后,探讨了如何将这些基本头寸结合起来,创造出更精细的策略,并指出虽然单一期权可能足以应对简单的观点,但复杂的市场预测则受益于期权的组合。 介绍了两种关键策略: 跨式组合:涉及购买具有相同行使价和到期日的看涨和看跌期权。该策略押注于高波动性,从任一方向(上涨或下跌)的显著波动中获利。其收益图呈V形,如果股价保持在行使价,损失仅限于支付的权利金。一个关键细节是,股价必须波动足够大,以覆盖两种权利金,才能实现盈利。 扼式组合:与跨式组合类似,但看涨和看跌期权均为虚值,因此成本更低。这降低...

SQL

11k 词
数据库管理系统 Selecting literals SQL 中 用 SELECT 直接选取字面值(literals)并用 AS 起列别名,然后用 UNION 把多条 SELECT 的结果合并成一个表。具体解析如下: 基本语法 SELECT [表达式] AS [列名], [表达式] AS [列名] 这里 [表达式] 可以是字面值(如字符串 "daisy")、列名或计算式。 如果你直接选字面值,不是从已有表里取数据,那么结果就是**一行一列(或多列)**的临时表。 在这个场景里,expression 就是你“写进去”的值,而 AS name 就是告诉 SQL:把这个值放到结果表里并命名这一列为 name。 举个对应的直观解释: 1SELECT "daisy" AS parent, "hank" AS child 也就是说: "daisy" → 写入到 parent 列 "hank" → 写入到 child 列 如果后面有 UNION,就会把下一条 SELECT 的行追加到这个结果表中 不过要注意,它并不是向数据库的物理表“插入”数据(那是 INSERT...
1.2k 词

我们用哈希表来解决这个问题
首先创建一个哈希表,再遍历原链表,遍历的同时再不断创建新节点
我们将原节点作为key,新节点作为value放入哈希表中